package jieyasuoliu;

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class demo2 {
    public static void main(String[] args) throws IOException {

        /*
         *   压缩流
         *      需求：
         *          把D:\\a.txt打包成一个压缩包
         * */
        //1.创建File对象表示要压缩的文件
        File src = new File("D:\\b.txt");
        //2.创建File对象表示压缩包的位置
        File dest = new File("D:\\");
        //3.调用方法用来压缩
        toZip(src, dest);
    }


    /*
     *   作用：压缩
     *   参数一：表示要压缩的文件
     *   参数二：表示压缩包的位置
     * */
    static void toZip(File src, File dest) throws IOException {
        /*
        1.创建压缩流
        压缩的名字我叫a.zip
        */
        //在dest目录下创建一个a.zip压缩包
        ZipOutputStream zop = new ZipOutputStream(new FileOutputStream(new File(dest, "a.zip")));
        //2.创建ZipEntry对象，表示压缩包里面的每一个文件和文件夹
        //参数：压缩包里面的路径
        ZipEntry entry = new ZipEntry("b.txt");
        //3.把ZipEntry对象 （a.txt）放入压缩流a.zip当中
        zop.putNextEntry(entry);
        //4.把a.txt（src文件中） 的内容读取出来，写入压缩流
        FileInputStream fis = new FileInputStream(src);
        int b;
        while ((b = fis.read()) != -1) {
            zop.write(b);
        }

        fis.close();
        zop.closeEntry();
        zop.close();
    }
}
